草庐IT

ML 方法

全部标签

c# - 对于 C# 无法使用类型约束推断泛型类型参数,是否有解决方法?

EricLippert在他的博文中解释了http://blogs.msdn.com/b/ericlippert/archive/2009/12/10/constraints-are-not-part-of-the-signature.aspx为什么类型推断不考虑约束,这是有道理的,因为不能通过简单地更改类型约束来重载方法。但是,我想找到一种使用两种泛型类型实例化对象的方法,一种可以推断,另一种可以在考虑约束的情况下推断,而无需指定任何类型。给定类型:publicinterfaceI{OtherCreateOther();}publicclassC:I{publicOtherCreate

c# - 从 C# 方法返回不同类型

我有一个方法:public???AuthManager.Login(Credentialscredentials)这是该方法的一组有效输出值:成功(+accountId)失败:帐户被锁定失败:未找到用户名失败:密码无效(+失败尝试次数)根据返回类型向用户显示不同的View(是的,AccountLockedOut的View不同于InvalidPassword)。我可以选择:publicclassLoginAttemptResult{publicboolSucceeded{get;set;}publicAccountIdAccountId{get;set;}//forwhensuccess

c# - C# 异步库方法调用是否应该等待?

异步库方法是否应该调用await?例如,假设我有一个数据服务库方法可以访问名为“repository”的EntityFramework6数据上下文。据我所知,我有两种定义此方法的方法:publicstaticasyncTask>GetAllBlogsAsync(EfDataContextdb){returnawaitdb.Blogs.OrderByDescending(b=>b.Date).SelectAsync();}或者没有async/await装饰publicstaticTask>GetAllBlogsAsync(EfDataContextdb){returndb.Blogs.O

c# - 比 decimal.Parse 更快的替代方法

我注意到decimal.Parse(number,NumberStyles.AllowDecimalPoint,CultureInfo.InvariantCulture)比基于JeffreySax来自FasteralternativetoConvert.ToDouble的代码的自定义十进制解析方法慢大约100%publicstaticdecimalParseDecimal(stringinput){boolnegative=false;longn=0;intlen=input.Length;intdecimalPosition=len;if(len!=0){intstart=0;if(

c# - 在 C# 中处理共享 dll 的最佳方法是什么?

在我的团队中,我们有数百个共享dll,其中许多还引用其他dll,而这些dll本身又引用其他dll,等等。我们已经开始为所有我们认为足够通用以用于其他项目的dll使用“共享”目录,例如数据库通信dll。问题是如果其中一个dll一直沿树向下更改,那么引用它的所有内容都需要重新编译以避免版本控制问题(在运行时发生)。为了避免这种情况,现在有人讨论将我们所有的“共享”dll添加到一个大程序集中,任何创建新应用程序的人都只需引用它,并且仅引用它。这显然会变得越来越大,我不确定这是否是最好的方法。有什么想法吗? 最佳答案 我们所做的是将共享DL

c# - 如何使用反射调用带有 ref/out 参数的方法

假设我有以下类(class):classCow{publicstaticboolTryParse(strings,outCowcow){...}}是否可以通过反射调用TryParse?我知道基础知识:vartype=typeof(Cow);vartryParse=type.GetMethod("TryParse");vartoParse="...";varresult=(bool)tryParse.Invoke(null,/*whataretheargs?*/); 最佳答案 你可以这样做:staticvoidMain(string[

c# - 是否可以使用数据注释来验证传递给 Controller ​​的 Action 方法的参数?

我正在使用数据注释来验证我在ASP.NETMVC中的模型。这适用于具有复杂参数的操作方法,例如,publicclassParams{[Required]stringParam1{get;set;}[StringLength(50)]stringParam2{get;set;}}ActionResultMyAction(Paramsparams){If(ModeState.IsValid){//DoSomething}}如果我想将单个字符串传递给操作方法(如下所示)怎么办?有没有一种方法可以使用数据注释,或者我是否必须将字符串包装到一个类中?ActionResultMyAction(st

c# - 有什么方法可以阻止 WPF Popup 在离开屏幕时重新定位自身?

有什么方法可以停止WPFPopup当它离开屏幕时重新定位自己?我找到了这个oldquestion,但它没有得到正确的答案。有什么办法吗?如有必要,我愿意将其子类化。谢谢。 最佳答案 正如Andrei所指出的,这种行为在Popup控件的深处,很难克服。如果您愿意做一些工作,可以通过在弹出窗口到达屏幕边缘时调整大小和翻译弹出窗口的内容来完成。出于演示目的,我们将关注屏幕的左边缘。如果我们有这样的XAML:Loremipsumdolorsitamet,consecteturadipisicingelit,seddoeiusmodtempo

c# - 为什么 "await"必须在 "async"方法中?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whydoestheasynckeywordexist我有两种方法。一种是普通方法(MyMethod),一种是异步方法(MyMethodAsync)。我收到编译错误。staticstringMyMethod(){varresult=awaitMyMethodAsync();//compileerrorherereturnresult;}asyncstaticTaskMyMethodAsync(){/**performmylogichere...**/Thread.Sleep(1000);return"yes"

c# - 可移植库上是否有替代 AppDomain.GetAssemblies 的方法?

我正在寻找一种将当前应用程序的程序集放入可移植库项目中的方法。在经典库项目中,下面的代码行完成了这项工作:varassemblies=System.AppDomain.CurrentDomain.GetAssemblies();但似乎System.AppDomain不可用于可移植库。有谁知道在可移植库上获取当前域程序集的方法吗? 最佳答案 您可以使用平台Hook:在您的可移植图书馆中:usingSystem.Collections.Generic;namespacePCL{publicinterfaceIAppDomain{ILis